home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio / Ham Radio CD-ROM (Emerald Software) (1995).ISO / ant / antenna2 / txnline.bas < prev    next >
BASIC Source File  |  1986-08-11  |  2KB  |  72 lines

  1. 10 CLS:KEY OFF
  2. 20 T$="TRANSMISSION LINE CALCULATION" :L=1:GOSUB 160
  3. 30 T$="LOSSLESS LINE":L=2:GOSUB 160
  4. 40 PRINT:PRINT:PRINT
  5. 50 '     AHMAD FAIZAL MOHD ZAIN
  6. 60 '        JULY 8, 1986
  7. 70 PI=3.141592
  8. 80 :
  9. 90 DEF FN MAG(X,Y)=SQR(X*X+Y*Y)
  10. 100 DEF FN ANG(X,Y)=ATN(Y/X)
  11. 110 :
  12. 120 DEF FN REAL(MAG,THETA)=MAG*COS(THETA)
  13. 130 DEF FN IMAG(MAG,THETA)=MAG*SIN(THETA)
  14. 140 :
  15. 150 GOTO 180
  16. 160 LOCATE L,(80-LEN(T$))/2+1:PRINT T$:RETURN
  17. 170 :
  18. 180 INPUT"ENTER FREQUENCY (MHZ)";FREQ
  19. 190 INPUT"ENTER CHARACTERISTIC IMPEDANCE";Z0
  20. 200 INPUT"ENTER LOAD IMPEDANCE (REAL PART)";RL
  21. 210 INPUT"ENTER LOAD IMPEDANCE (IMAG PART)";XL
  22. 220 INPUT"ENTER LENGTH OF LINE (METERS)";L
  23. 230 PRINT
  24. 240 LAMBDA=300/FREQ
  25. 250 BETA=2*PI/LAMBDA
  26. 260 BL=BETA*L
  27. 270 ZL=FN MAG(RL,XL)
  28. 280 X=RL:Y=XL:GOSUB 670:THETA=T*PI/180
  29. 290 :
  30. 300 :
  31. 310 AX=Z0-ZL*SIN(THETA)*TAN(BL)
  32. 320 AY=ZL*COS(THETA)*TAN(BL)
  33. 330 MAGA=FN MAG(AX,AY)
  34. 340 X=AX:Y=AY:GOSUB 670:ANGA=T*PI/180
  35. 350 BX=RL
  36. 360 BY=XL+Z0*TAN(BL)
  37. 370 MAGB=FN MAG(BX,BY)
  38. 380 X=BX:Y=BY:GOSUB 670:ANGB=T*PI/180
  39. 390 MAGZIN=Z0*MAGA/MAGB
  40. 400 ANGZIN=ANGA-ANGB
  41. 410 REAL=MAGZIN*COS(ANGZIN):IMAG=MAGZIN*SIN(ANGZIN)
  42. 420 IF IMAG<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
  43. 430 PRINT USING"INPUT IMPEDANCE OF LINE IS  : ###.##";REAL;:PRINT SIGN$;:PRINT USING "###.##";ABS(IMAG)
  44. 440 PRINT
  45. 450 :
  46. 460 REM  REFLECTION COEFFICIENT
  47. 470 X=RL-Z0: Y=XL
  48. 480 MAGA=FN MAG(X,Y)
  49. 490 GOSUB 670:ANGA=T*PI/180
  50. 500 X=RL+Z0: Y=XL
  51. 510 MAGB=FN MAG(X,Y)
  52. 520 GOSUB 670:ANGB=T*PI/180
  53. 530 GAMMA=MAGA/MAGB:ANGAMMA=(ANGA-ANGB)*180/PI
  54. 540 PRINT USING"COEFFICIENT OF REFLECTION IS MAGNITUDE = ##.##";GAMMA;:PRINT USING" AND ANGLE = ####.##";ANGAMMA;:PRINT" DEGREES"
  55. 550 PRINT
  56. 560 :
  57. 570 REM FIND SWR
  58. 580 IF GAMMA=1 THEN PRINT"SWR IS INFINITE":GOTO 620
  59. 590 GAMMA=ABS(GAMMA)
  60. 600 S=(1+GAMMA)/(1-GAMMA)
  61. 610 PRINT USING"SWR IS ##.##";S
  62. 620 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":L=23:GOSUB 160
  63. 630 AN$=INKEY$
  64. 640 IF AN$="Y" OR AN$="y" THEN RUN
  65. 650 IF AN$="N" OR AN$="n" THEN END
  66. 660 GOTO 620
  67. 670 IF X>0 THEN T=(180/PI)*ATN(Y/X)
  68. 680 IF X<0 THEN T=180*SGN(Y)+(180/PI)*ATN(Y/X)
  69. 690 IF X=0 THEN T=90*SGN(Y)
  70. 700 IF Y=0 AND X<0 THEN T=180
  71. 710 RETURN
  72.